package com.quanyan.stadium.biz;

import com.quanyan.stadium.entity.TbDatesportJoinInfo;

import java.util.List;

/**
 * Created by Zheng.Ke
 * Date 2016/7/14.
 */
public interface BizDatesportJoinInfoDao {
    /**
     * 根据约活动id和uid来找查
     * @param datesportId
     * @param uid
     * @return
     */
    TbDatesportJoinInfo getByDatesportIdAndUid(int datesportId, int uid);

    /**
     * 根据约活动id和uid来找查
     * @param datesportIdList
     * @param uid
     * @return
     */
    List<TbDatesportJoinInfo> findByDatesportIdAndUid(List<Integer> datesportIdList, int uid);


    /**
     * 根据约活动id和uid来找查
     * @param datesportId
     * @param uidList
     * @return
     */
    List<TbDatesportJoinInfo> findByDatesportIdAndUid(int datesportId, List<Integer> uidList);

    /**
     * 根据参与状态查询
     * @param datesportId
     * @return
     */
    List<TbDatesportJoinInfo> findByDatesportIdAndStatus(int datesportId, List<Byte> status);

    /**
     * 根据参与状态查询
     * @param datesportId
     * @return
     */
    List<TbDatesportJoinInfo> findByDatesportIdAndStatus(int datesportId, List<Byte> status, Integer pageNum, Integer pageSize);

    /**
     * 获取已参与的活动
     * @param datesportId
     * @return
     */
    List<TbDatesportJoinInfo> findJoinedByDatesportId(int datesportId);

    /**
     * 获取已参与的活动
     * @param datesportId
     * @param pageNum
     * @param pageSize
     * @return
     */
    List<TbDatesportJoinInfo> findJoinedByDatesportId(int datesportId, Integer pageNum, Integer pageSize);

    /**
     * 根据datesportid 和uid来找查，如果有，则更新; 没有，则保存；
     * @param tbDatesportJoinInfo
     * @return
     */
    void saveOrUpdateDatesportJoinInfo(TbDatesportJoinInfo tbDatesportJoinInfo);

    /**
     * 获取参加约运动人数最多的性别
     * @param datesportId
     * @param newGender  刚加进来的那人的性别
     * @param isAdd  true 增加  false 删除
     * @return
     */
    Byte getMaxJoinedPeopleGender(int datesportId, Byte newGender, boolean isAdd);
}
